A deep packet inspection (DPI) is a form of computer network packet filtering that examines data and/or header part of a packet as it passes an inspection point. During the inspection, non-protocol compliance, viruses, spam, intrusions or predefined criteria may be perused to decide if the packet can pass or if it needs to be routed to a different destination.
There are several methods of the DPI, which include analyses by port, by string match, by numerical properties, and by behavior and heuristics. Among the methods, the analysis by string involves the search for a sequence of textual characters or numeric values within the contents of one or more packets. Since the method involves the comparison of data patterns to textual characters within the contents of the packet, it often takes long time to complete the task when the data patterns or the textual characters are many. Since the packets have to be processed with the arduous pattern matching routine, a delay in the flow of communication can result. This becomes even more problematic especially for ultra high speed communication systems.